Skip to content

Conversation

@7908837174
Copy link

@7908837174 7908837174 commented Sep 23, 2025

Detailed Description

This PR resolves the ARM64 compatibility issue in GitHub Actions workflows that prevented local CI testing on Apple M1/M2 Macs and ARM64 systems using the act tool.

Problem

  • The arduino/setup-protoc@v1 action contained x86_64-specific binaries in its node_modules/@actions/tool-cache/scripts/externals/ directory
  • When running CI locally on ARM64 systems, users encountered: qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory
  • This blocked local development and testing workflows for ARM64 users

Solution

Replaced the problematic action with a robust shell script that:

  1. Auto-detects system architecture:

    • x86_64 → Downloads protoc-25.1-linux-x86_64.zip
    • aarch64/arm64 → Downloads protoc-25.1-linux-aarch_64.zip
    • Graceful error handling for unsupported architectures
  2. ** Direct installation from official releases**:

    • Downloads from https://github.com/protocolbuffers/protobuf/releases/
    • Installs to /usr/local/bin/protoc with proper includes
    • Verifies installation with protoc --version
  3. ** Upgraded to latest stable protoc v25.1**

Files Changed

File Change Description
.github/workflows/ci-go-cover.yml Replaced arduino action with cross-platform script
.github/workflows/ci.yml Replaced arduino action with cross-platform script
.github/workflows/linters.yml Replaced arduino action with cross-platform script
.github/workflows/time-package.yml Replaced arduino action with cross-platform script
.github/workflows/PROTOC_FIX.md Added comprehensive documentation

Testing

  • Architecture Detection: Validated logic for x86_64, aarch64, and arm64
  • URL Validation: Confirmed official release URLs exist for both architectures
  • Installation Test: Successfully installed protoc v25.1 on current system
  • Compatibility: Maintains backward compatibility with existing workflows

@7908837174 7908837174 changed the title Fix CI ARM64 compatibility by replacing arduino/setup-protoc@v1 with cross-platform protoc installation Fix CI ARM64 compatibility by replacing arduino/setup-protoc@v1 with cross-platform protoc installation #60 Sep 23, 2025
@7908837174 7908837174 force-pushed the fix-ci-arm64-compatibility branch 2 times, most recently from e4f5f8d to 75ae307 Compare September 30, 2025 18:28
@7908837174
Copy link
Author

Hi @yogeshbdeshpande @thomas-fossati @cowbon @deeglaze @iolivergithub @jraman567 Sir: PR #344 fixes CI ARM64 compatibility by replacing arduino/setup-protoc@v1 with a cross-platform protoc installer (adds ARM64 support, docs and tests) — please review and approve to unblock merging.

Copy link
Collaborator

@setrofim setrofim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Please update commit messages to use conventional commits format.
  • I'm unclear on what the *.md files are doing? They appear to contain metadata specific to this pull -- not something that should be part of the code.

…llation

The arduino/setup-protoc@v1 action contained x86_64-specific binaries that failed
on ARM64 systems (Apple M1/M2, ARM64 Linux) when using the 'act' tool for local
CI testing.

Changes:
- Replace arduino/setup-protoc@v1 with cross-platform shell script in all workflows
- Auto-detect architecture (x86_64, aarch64, arm64)
- Download appropriate protoc binary from official GitHub releases
- Install to /usr/local/bin/protoc with proper includes
- Upgrade to protoc v25.1 (latest stable)
- Add comprehensive error handling and validation

Files updated:
- .github/workflows/ci-go-cover.yml
- .github/workflows/ci.yml
- .github/workflows/linters.yml
- .github/workflows/time-package.yml

This enables local CI testing on ARM64 systems while maintaining full backward
compatibility with existing x86_64 runners.

Fixes veraison#60

Signed-off-by: Kallal Mukherjee <[email protected]>
@7908837174 7908837174 force-pushed the fix-ci-arm64-compatibility branch from 75ae307 to 3029d49 Compare October 2, 2025 02:12
@7908837174
Copy link
Author

7908837174 commented Oct 2, 2025

Kindly requesting re-review from SIR @setrofim @yogeshbdeshpande @mcdonc @thomas-fossati for PR #344

Copy link
Collaborator

@setrofim setrofim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@7908837174
Copy link
Author

Requesting merge for PR #344: ARM64 CI fix with cross-platform protoc installer, approved by @setrofim — kindly requesting workflow approval from @yogeshbdeshpande @mcdonc @thomas-fossati @cowbon @deeglaze @iolivergithub @jraman567 to unblock.

@7908837174
Copy link
Author

Thanks sir @setrofim for the review and approval on PR #344.

@7908837174
Copy link
Author

Requesting re-review and approval for PR #344 from sir @yogeshbdeshpande ,sir @thomas-fossati , sir @cowbon ..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants